/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package SistemaGeneral;

import Menu.AnimadorMenu;
import Menu.Logo;
import java.io.IOException;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.game.GameCanvas;

/**
 *
 * @author LapR
 */
public class Splash  extends GameCanvas {
    // Todos los objetos que tendrá¡ nuestro juego
    /**
     * Guarda el valor del ancho de la pantalla
     */
    public int ANCHO, ALTO;        // Ancho y alto de la pantalla del celular
    /**
     * Guarda el valor del alto de la pantalla
     */
    // El animador es un Thread que corre en segundo plano
    private AnimadorSplash animador;  // Estará avisando a cada rato que se actualice y dibuje
    private Graphics g;         // Contexto gráfico para hacer trazos
    // Es la referencia para detener la aplicación
    private TheRace midlet;
    private boolean logos = true;
    private Logo logoTec,logoJuego;

    /**
     * Dibuja los logos del Tecnologico y del juego como el menu
     * @param midlet Se envia el midlet para poder terminar la aplicacion
     * si se quiere salir de ella o si hay algun error al cargar imagenes
     */
    public Splash(TheRace midlet) {

        super(true);
        this.midlet = midlet;
        this.setFullScreenMode(true);
        this.ANCHO = this.getWidth();
        this.ALTO = this.getHeight();
        g = this.getGraphics();
        try {
            // Crear todos los objetos
            logoTec = new Logo("/ImagenesMenu/logo_tec.jpg");
            logoJuego = new Logo("/ImagenesMenu/logo_juego.jpg");
        } catch (IOException ex) {
            ex.printStackTrace();
            //Termina el programa si no puede crear un menu
            animador.terminar();
        }

        // Ultimas líneas que inician la animación
        animador = new AnimadorSplash(this);
        animador.iniciar();

    }

    void dibujar() {
        // Borra la pantalla
        g.setColor(0xFFFFFF);
        g.fillRect(0, 0, ANCHO, ALTO);

       try{
                logoTec.dibujar(g);
                flushGraphics();
                Thread.sleep(2000);
                logoJuego.dibujar(g);
                flushGraphics();
                Thread.sleep(2000);
                flushGraphics();    // Actualiza los cambios en la memoria de la pantalla

        } catch (InterruptedException ex) {
            ex.printStackTrace();
        }
        this.destruir();
        midlet.setDisplayactual(1);
        midlet.startApp();
    }
    /**
     *Se encarga de detener el animador
     */
    public void destruir(){
        logoTec.destruir();
        logoJuego.destruir();
        this.animador.terminar();
  }
}
